package com.smartboot.plus.vo;


public class MqttEndpointNodeVO {

	/**
	 * 节点的唯一标识符。用于区分不同的节点。
	 */
	private String nodeId;



	/**
	 * Broker监听的端口号。用于客户端连接。
	 */
	private int port;

	/**
	 * Broker监听的主机地址。通常为 `0.0.0.0` 代表所有网络接口。
	 */
	private String host;

	/**
	 * 处理的线程数，用于控制Broker内部的线程池大小，影响并发处理能力。
	 */
	private int threadNum;

	/**
	 * 推送消息的线程数。用于控制用于消息推送的专用线程池大小。
	 */
	private int pushThreadNum;

	/**
	 * 数据缓冲区大小，单位字节。影响数据的缓存能力，缓解高并发时的性能瓶颈。
	 */
	private int bufferSize;

	private String bufferSizeUnit;

	/**
	 * 最大的未确认消息数。用于控制消息的并发处理和发送能力。
	 */
	private int maxInflight;

	/**
	 * 消息队列的最大长度。控制系统在处理请求时允许队列的最大长度。
	 */
	private int maxMessageQueueLength;

	/**
	 * 单个数据包的最大大小。限制消息的最大体积，防止过大的消息造成内存溢出或网络传输瓶颈。
	 */
	private int maxPacketSize;

	private String maxPacketSizeUnit;


	/**
	 * 连接空闲超时（毫秒）。如果客户端在指定的时间内没有发送任何请求，Broker会断开连接。
	 */
	private int noConnectIdleTimeout;




	// Getter and Setter for nodeId
	public String getNodeId() {
		return nodeId;
	}

	public void setNodeId(String nodeId) {
		this.nodeId = nodeId;
	}

	// Getter and Setter for port
	public int getPort() {
		return port;
	}

	public void setPort(int port) {
		this.port = port;
	}

	// Getter and Setter for host
	public String getHost() {
		return host;
	}

	public void setHost(String host) {
		this.host = host;
	}

	// Getter and Setter for threadNum
	public int getThreadNum() {
		return threadNum;
	}

	public void setThreadNum(int threadNum) {
		this.threadNum = threadNum;
	}

	// Getter and Setter for pushThreadNum
	public int getPushThreadNum() {
		return pushThreadNum;
	}

	public void setPushThreadNum(int pushThreadNum) {
		this.pushThreadNum = pushThreadNum;
	}

	// Getter and Setter for bufferSize
	public int getBufferSize() {
		return bufferSize;
	}

	public void setBufferSize(int bufferSize) {
		this.bufferSize = bufferSize;
	}

	// Getter and Setter for bufferSizeUnit
	public String getBufferSizeUnit() {
		return bufferSizeUnit;
	}

	public void setBufferSizeUnit(String bufferSizeUnit) {
		this.bufferSizeUnit = bufferSizeUnit;
	}

	// Getter and Setter for maxInflight
	public int getMaxInflight() {
		return maxInflight;
	}

	public void setMaxInflight(int maxInflight) {
		this.maxInflight = maxInflight;
	}

	// Getter and Setter for maxMessageQueueLength
	public int getMaxMessageQueueLength() {
		return maxMessageQueueLength;
	}

	public void setMaxMessageQueueLength(int maxMessageQueueLength) {
		this.maxMessageQueueLength = maxMessageQueueLength;
	}

	// Getter and Setter for maxPacketSize
	public int getMaxPacketSize() {
		return maxPacketSize;
	}

	public void setMaxPacketSize(int maxPacketSize) {
		this.maxPacketSize = maxPacketSize;
	}

	// Getter and Setter for maxPacketSizeUnit
	public String getMaxPacketSizeUnit() {
		return maxPacketSizeUnit;
	}

	public void setMaxPacketSizeUnit(String maxPacketSizeUnit) {
		this.maxPacketSizeUnit = maxPacketSizeUnit;
	}


	// Getter and Setter for noConnectIdleTimeout
	public int getNoConnectIdleTimeout() {
		return noConnectIdleTimeout;
	}

	public void setNoConnectIdleTimeout(int noConnectIdleTimeout) {
		this.noConnectIdleTimeout = noConnectIdleTimeout;
	}



}
